package conservare.negocio;

import conservare.dao.PagamentoContaAReceberDAO;
import conservare.modelo.financeiro.Pagamento;
import conservare.modelo.financeiro.ViaBoleto;
import conservare.modelo.financeiro.ViaDinheiro;
import conservare.modelo.type.TipoBaixaContaPaga;

public class PagamentoContaAReceberRN {
	
	private PagamentoContaAReceberDAO dao;
	
	public PagamentoContaAReceberRN(){
		this.dao = new PagamentoContaAReceberDAO();
	}
	
	public Pagamento getById(Integer id){
		return this.dao.getById(id);
	}
	
	public Pagamento salvar(Pagamento contaPaga){
		Pagamento contaPagaSalva = this.dao.salvar(contaPaga);
		return getById(contaPagaSalva.getId());
	}
	
	
	public Pagamento getNovo(Pagamento.FORMA_PAGAMENTO formaPagamento, TipoBaixaContaPaga tipoBaixa){
		
		Pagamento pagamento = null;
		if(formaPagamento == Pagamento.FORMA_PAGAMENTO.VIA_DINHEIRO)
			pagamento = new ViaDinheiro();
		else if(formaPagamento == Pagamento.FORMA_PAGAMENTO.VIA_BOLETO)
			pagamento = new ViaBoleto();
			
		pagamento.setTipoBaixa(tipoBaixa);
		
		return pagamento;
		
	}
	
}
